﻿NSMobile.models.KPIData = Ext.regModel('KPIData', {
    fields:
        [
            'periodname',
            'periodid',
            'sponsor',
            { name: 'prv', type: 'float' },
            { name: 'twv', type: 'float' },
            { name: 'gwv', type: 'float' },
            { name: 'team', type: 'int' },
            'progress',
            'prvgoal',
            'gwvgoal',
            { name: 'orders', type: 'Order' },
            { name: 'afl', type: 'int' },
            { name: 'group', type: 'int' },
            'title',
            { name: 'isdirector', type: 'boolean' }
        ]
});

NSMobile.stores.kpidata = new Ext.data.JsonStore({
    model: 'KPIData',
    proxy: {
        type: 'ajax',
        url: serviceURI + '/GetPerformance',
        listeners: {
            exception: {
                fn: function (proxy, response, operation) {
                    showErrorOnce();
                }
            }
        },
        timeout: ajaxTimeout
    },
    sorters: {
        property: 'periodid',
        direction: 'desc'
    },
    listeners: {
        beforeload: {
            fn: function () {
                setSyncIcon('chart4', true);
            }
        },
        load: {
            fn: function () {
//                var storageData = getStorage('kpidata');
//                storageData.kpis = storageData.kpis || {};
//                var kpis = {};
//                for (var i = 0; i < NSMobile.stores.kpidata.data.length; i++) {
//                    var kpi = NSMobile.stores.kpidata.getAt(i);
//                    kpis[kpi.data.periodid] = kpi.data;
//                }
//                Ext.apply(storageData.kpis, kpis);
//                setStorage('kpidata', storageData);
                kpisLoaded = true;
                //NSMobile.stores.local.kpidata.load();
                if (NSMobile.stores.kpidata.data.length > 0) {
                    var data = NSMobile.stores.kpidata.getAt(0).data;
                    var contacts = Ext.getCmp('contactpanel');
                    if (contacts) {
                        if (data.isdirector)
                            contacts.tabBar.items.getAt(1).show();
                        else
                            contacts.tabBar.items.getAt(1).hide();
                    }

                    var periodselect = Ext.getCmp('periodselect');
                    if (periodselect && data) {
                        periodselect.onPeriodChange(data.periodid);
                        periodselect.setValue(data.periodid);
                    }
                }
                setSyncIcon('chart4', false);
            }
        }
    }
});

//NSMobile.stores.local.kpidata = new Ext.data.Store({
//    model: 'KPIData',
//    proxy: {
//        type: 'memory',
//        reader: {
//            type: 'json'
//        },
//        read: function (operation, callback, scope) {
//            var storageData = getStorage('kpidata');
//            var kpis = [];

//            for (var key in storageData.kpis)
//                kpis.push(new this.model(storageData.kpis[key]));

//            if (!kpisLoaded) {
//                if (kpis.length > 0)
//                    NSMobile.stores.kpidata.getProxy().extraParams.incremental = true;
//                NSMobile.stores.kpidata.load();
//                NSMobile.stores.kpidata.getProxy().extraParams.incremental = false;
//            }

//            operation.resultSet = new Ext.data.ResultSet({
//                records: kpis,
//                total: kpis.length,
//                loaded: true
//            });
//            operation.setSuccessful();
//            operation.setCompleted();

//            if (typeof callback == 'function') {
//                callback.call(scope || this, operation);
//            }
//        }
//    },
//    sorters: {
//        property: 'periodid',
//        direction: 'desc'
//    },
//    listeners: {
//        load: {
//            fn: function () {
//                if (NSMobile.stores.local.kpidata.data.length > 0) {
//                    var data = NSMobile.stores.local.kpidata.getAt(0).data;
//                    var contacts = Ext.getCmp('contactpanel');
//                    if (contacts) {
//                        if (data.isdirector)
//                            contacts.tabBar.items.getAt(1).show();
//                        else
//                            contacts.tabBar.items.getAt(1).hide();
//                    }

//                    var periodselect = Ext.getCmp('periodselect');
//                    if (periodselect && data) {
//                        periodselect.onPeriodChange(data.periodid);
//                        periodselect.setValue(data.periodid);
//                    }
//                }
//            }
//        }
//    }
//});

var kpisLoaded = false;